When there is an error in communication with the target OPC server, the OPC observable sends a message (one of the XXXXEventArgs objects) with following characteristics:
Your StreamInsight application code needs to be prepared for such messages. As a minimum, if you want to ignore error situations, you need to filter out the error messages, and in case of error, do not access the fields of the XXXXEventArgs that do not contain valid data.
When you use the pre-defined OPC Event Payload classes (described further below), the conversion code already takes the possible errors into account, and behaves accordingly, by filling in the payload fields with default values, setting negative error code in the payload, etc.
Note that the errors described here are NOT errors in the sense of calling the OnError method of the IObserver interface. In fact, the OPC observables never call OnError, because that would mean an irrecoverable error and a completion of the sequence. The OPC errors are, however, potentially transient and recoverable, and must therefore be a part of normal notifications.